[JBoss JIRA] Created: (TEIID 您所在的位置:网站首页 ora06553 pls103 [JBoss JIRA] Created: (TEIID

[JBoss JIRA] Created: (TEIID

2023-04-05 15:53| 来源: 网络整理| 查看: 265

Larry O'Leary (JIRA) Thursday, 6 August 2009 Thu, 6 Aug '09 10:35 a.m. SDO_WITHIN_DISTANCE function of Oracle Spatial Connector is pushing string literal to data source ------------------------------------------------------------------------------------------------- Key: TEIID-751 URL: https://jira.jboss.org/jira/browse/TEIID-751 Project: Teiid Issue Type: Bug Components: JDBC Connector Affects Versions: 6.1.0, 6.0.0 Reporter: Larry O'Leary Assignee: Larry O'Leary Priority: Minor Fix For: 6.2.0 Executing a query which uses the SDO_WITHIN_DISTANCE function in criteria results in an invalid query being sent to Oracle. Query: SELECT RECORD_ID FROM OraSpatialSrcTable WHERE sdo_within_distance(MARKER, '(SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL))', "DISTANCE=25.0 UNIT=NAUT_MILE") = 'TRUE' Results In Exception: ERROR [MetaMatrix][Oracle JDBC Driver][Oracle]ORA-29900: operator binding does not exist ORA-06553: PLS-306: wrong number or types of arguments in call to 'SDO_WITHIN_DISTANCE' Executing statement: SELECT ORASPATIALSRCTABLE.RECORD_ID FROM ORASPATIALSRCTABLE WHERE SDO_WITHIN_DISTANCE(ORASPATIALSRCTABLE.MARKER, '(SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL))', 'DISTANCE=25.0 UNIT=NAUT_MILE') = TRUE java.sql.SQLException: [MetaMatrix][Oracle JDBC Driver][Oracle]ORA-29900: operator binding does not exist ORA-06553: PLS-306: wrong number or types of arguments in call to 'SDO_WITHIN_DISTANCE' at com.metamatrix.common.util.exception.SQLExceptionUnroller.unRollException(SQLExceptionUnroller.java:43) at com.metamatrix.connector.jdbc.JDBCBaseExecution.createError(JDBCBaseExecution.java:147) at com.metamatrix.connector.jdbc.JDBCBaseExecution.createAndLogError(JDBCBaseExecution.java:103) at com.metamatrix.connector.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:89) at com.metamatrix.dqp.internal.datamgr.impl.ConnectorWorker.processNewRequest(ConnectorWorker.java:274) at com.metamatrix.dqp.internal.datamgr.impl.ConnectorWorker.processBatchRequest(ConnectorWorker.java:165) at com.metamatrix.dqp.internal.datamgr.impl.ConnectorWorker.process(ConnectorWorker.java:139) at com.metamatrix.common.queue.QueueWorker.run(QueueWorker.java:51) The exception is due to the second parameter of SDO_WITHIN_DISTANCE being escaped as a string. The expected query should be: SELECT ORASPATIALSRCTABLE.RECORD_ID FROM ORASPATIALSRCTABLE WHERE SDO_WITHIN_DISTANCE(ORASPATIALSRCTABLE.MARKER, (SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL)), 'DISTANCE=25.0 UNIT=NAUT_MILE') = TRUE In the above query the first parameter was an element of type String. If the first parameter was of type Object, the function is rewritten correctly. This appears to be primarily due to the function signatures of sdo_within_distance and the query rewriter performing an implicit convert on the second parameter to make it match the function signature of String, Object, String rather than Object, String, String. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira Reply

Show replies by thread

Loading...


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有